1. Field of the Invention
The present invention relates to editing and/or reproducing of packet-structured data, and more particularly, to a method for temporary deletion and restoration of a stream object, and fast permanent deletion of temporarily deleted stream object, and a recording medium for storing additional information for restoration or permanent deletion of temporarily deleted stream object.
2. Description of the Related Art
In general, content is formed by a stream object (SOB), and an SOB is managed in SOB units (SOBUs). Here, the stream object can be, for example, data which are recorded while a user records something from the beginning to the end. More particularly, an episode of a miniseries or a film can be recorded in one or more stream objects. Since a program can be used for explanation instead of a content, the word “program” will be used hereinafter.
FIG. 1 illustrates an example of the relationship between data and search information, which is used in reading desired data in an already recorded stream object. When a user records a program, a continuous program is seen by the user. Internally, however, a cell which provides a meaningful search tool to the user, and stream object information (SOBI), which links information in a cell to actual data, also exist.
Particularly as for a stream object, in order to improve the physical properties of recording media and the performance and/or convenience of management and efficiency of reproducing/editing devices, data are grouped in predetermined units (SOBUs) for management in an SOB, and information used in accessing the SOBUs is stored in a mapping list (MAPL) of the SOBI. The SOBUs are referenced starting from the number “1” and the MAPL can have a plurality of items. These items have information of incremental application packet arrival time (IAPAT), which corresponds to the difference between the arrival time of the first packet of a stream object unit and the first packet of the next consecutive stream object unit.
In order to randomly access a program recorded in a storage device, generally, search information on a program to be accessed is separately prepared and used. Search information generally includes information on data location in a program, program reproducing time, and program recording time. When a recorded program is a film, characteristic scenes can be used as search information. Here, a program recording time will be used as an example of search information.
Search information can have diverse formats in accordance with application fields, and generally data are grouped into a contiguous block as a unit of searching object in order to reduce the volume of search information and enable fast searching. Such grouping into a block is usually done in a layered structure. FIG. 1 illustrates an example of a three-layered structure.
When search information is made in the form of a layered structure, information in an upper layer includes information on a normal immediately-lower layer. A cell is an upper layer in search information which is included in a program. A stream object is located below the cell and stream object units are located below the stream object. Each layer of search information can have diverse relationships and, here, the following is assumed.
A program is formed of one or more cells, a cell is formed of one SOB, an SOB is formed of one or more SOBUs, and an SOBU is formed of one or more data.
FIG. 1 shows a case where Program_org is formed of Cell_org; Cell_org is formed of an SOB; the SOB is formed of SOBU(1), SOBU(2), and SOBU(3), and each SOBU is formed of data. That is, Program-org has an information structure storing information on its associated cell, the cell has an information structure storing information on its associated SOB, and each SOB has an MAPL which is an information structure that stores information on its associated SOBUs.
In addition, in order to show the range of stream objects that the search information manages, the arrival time of the first data of a cell (SC_S_APAT) and the arrival time of the last data of a cell (SC_E_APAT) are included in cell information, and the first data arrival time of a stream object (SOB_S_APAT) and the last data arrival time of a stream object (SOB_E_APAT) are included in the SOBI. A temporary erase (TE) flag represents that a stream object is temporarily deleted. Here, temporary deletion means that, after a user deletes all or some parts of a program, a chance to cancel the deletion is given to the user. In contrast, permanent deletion means a deletion for which a user is not given a chance to cancel the deletion.
Each item of the MAPL is represented by incremental AP arrival time (IAPAT) information which means the contiguous time of each corresponding SOBU. Here, AP is an abbreviated form of application packet, and means packet-structured data. IAPAT, the contiguous time of an SOBU, is defined as follows.
The degree of precision of search information expressed in time units depends on the application. For moving picture experts group-2 (MPEG-2) system, time is counted and used in units of 27 MHz. In FIG. 1, data is expressed in units of 0.1. In order to reduce the length of the search information MAPL, an SOB is assumed to express time in units of 1.0. When this is applied to a 48-bit register for expressing time, a portion equal to or greater than point b18, shown in FIG. 2, represents the integer part and a portion less than point b18 represents a decimal fraction. The location of b18, immediately upper this decimal fraction, will be expressed as MTU_SHFT.
In addition, the IAPAT of the MAPL shown in FIG. 1 have values of 3, 1, and 1. These values are based upon the arrival times of the first and last AP for SOBU(2), and SOBU(3). While not shown explicitly, for FIG. 1, the arrival time for the first AP for SOBU(2) is 2.1, the arrival time for the first AP for SOBU(3) is 3.5, and the arrival time for the last AP for SOBU(3) is 4.8. Using these values, the method used for determining the IAPAT information of an SOBU, depends on the location of an SOBU in an SOB, that is, whether or not an SOBU is the last SOBU in an SOB.
For example, when an SOB is formed of M SOBU's, the accumulated value of IAPATs from the first to the i-th SOBU except the last SOBU must not be greater than the first AP arrival time of SOBU(i+1) by 1. At this time, IAPAT is assumed to be an integer expressed in units of 1.0, and the initial value of accumulation is assumed to be “0.” This is expressed in the following equation 1.SOBU_S_APAT(i+1)≦SUM_IAPAT(i)<SOBU_S_APAT(i+1)+1.  (1)
Here, SUM_IAPAT(i) represents the accumulated value of all the preceding SOBUs' IAPAT values, including the corresponding SOBU, that is, SOBU#i, and SOBU_S_APAT(i+1) represents the arrival time of the first AP of SOBU(i+1).
When M SOBUs exist, the accumulated value of IAPATs from the first to the M-th for SOBU(M), the last SOBU, must be greater than the arrival time of the last AP of SOBU(M) and must not be greater than the arrival time of the last AP of SOBU(M) by 1. At this time, IAPAT is assumed to be an integer expressed in units of 1.0, and the initial value of accumulation starts from “0.”SOBU_E_APAT(M)<SUM_IAPAT(M)≦SOBU_E_APAT(M)+1.  (2)
Here, SUM_IAPAT(M) represents the accumulated value of all preceding IAPATs, including the IAPAT of a corresponding SOBU, SOBU (M), and SOBU_E_APAT(M) represents the arrival time of the last AP of SOBU(M).
Using equations (1) and (2), the IAPATs for SOBU(1), SOBU(2), and SOBU(3) shown in FIG. 1 is 3, 1, 1 as shown.
Referring to FIG. 3, the concepts of the equations 1 and 2 will now be explained in detail. For example, IAPAT(1), IAPAT(2) and IAPAT(6) can be obtained as follows.
In FIG. 3, for SOBU(1), the IAPAT of SOBU(1) must be equal to or greater than the arrival time of the first AP of SOBU(2), and must not be greater than the arrival time of the first AP of SOBU(2) by 1. That is, the result of accumulation must be equal to or greater than 1.9, and must be an integer less than 2.9, and therefore, the result must be 2. Accordingly, the IAPAT of SOBU(1) is 2.
As for SOBU(2), the sum of the IAPATs of SOBU(1) and SOBU(2) must be greater than or equal to the arrival time of the first AP of SOBU(3), and must not be greater than that by 1. That is, the result of accumulation must be equal to or greater than 5.5, and must be an integer less than 6.5, and therefore, the result must be 6. Since the IAPAT of SOBU(1) is 2, the IAPAT of SOBU(2) is 4.
In this way, IAPATs of the first SOBU and a middle SOBU can be obtained. However, FIG. 4A shows a boundary condition that needs to be more carefully handled. When the IAPAT of SOBU(2) of FIG. 4A is calculated and the arrival time of the first AP of SOBU(3) is integer value of 5.0, the result of accumulation to the IAPAT of SOBU(2) is not 6, but 5. As such, care must be taken if the first AP of a middle SOBU is an integer value.
As for the last SOBU, SOBU(6) in FIG. 3, the sum of all the IAPATs preceding and including the IAPAT of SOBU(6) must not be greater than or equal to the arrival time of the last AP of SOBU(6) than by 1. That is, the result of accumulation must be greater than 10.8, and must be an integer less than or equal to 11.8, and therefore, it must be 11. Since the result of accumulation of IAPAT to SOBU(5) is 10, the IAPAT of SOBU(6) is 1.
In this way, the IAPAT of the last SOBU in an SOB can be obtained. However, FIG. 4B shows a boundary condition that needs to be more carefully handled. When the IAPAT of SOBU(6) of FIG. 4B is calculated when the arrival time of the last AP of SOBU(6) is the integer value of 11.0, the result of accumulation to the IAPAT of SOBU(6) is not 11, but 12. As such, care must be taken if the last AP of a last SOBU is an integer.
When a program is temporarily deleted, this deletion is indicated by a temporary erase (TE) flag, which generally known. Using a TE Flag, when a part of a program is temporarily deleted, a stream object is divided into a temporarily deleted stream object and undeleted stream objects, and the TE flag is set in the temporarily deleted stream object. This division is for restoring the deleted part later by changing only the search information which links a user and data, without actually deleting data.
While a method for dividing search information is known, a method for generating search information in dividing a stream object has not been disclosed. Also, only the TE flag indicates that the temporarily deleted part has been temporarily deleted. Thus when the TE flag reset in later restoration, the reading between the previously divided cells is performed discontinuously because of the reset process. Basically, if a restoration method having a process for resetting the TE flag is used, the restored program will have two or more cells. This means that the original program of FIG. 1 is not restored fully because the operation between cells is not defined, though the temporarily deleted part is restored after the temporary deletion. Therefore, since, from the standpoint of a user, a restoration after temporary deletion means restoration to the original state, a method for fully restoring a stream object divided due to temporary deletion is required.